package cn.doitedu.day04

class Monkey extends Animal with Flyable with Fightable {


  //如果实现父类的抽象方法，可以加override关键字，也可以不加
  override def run(): Unit = {
    println("蹦蹦跳跳的走！")
  }

  //重写父类非抽象的方法，必须加override关键字
    override def breath(): Unit = {
      //super.breath()
      println("呼吸一些清新的空气")
    }

  override def fly(): Unit = {
    println("乘着筋斗云飞")
  }

  override def fight(): Unit = {
    println("使用金箍棒打你！")
  }
}


object Monkey {

  def main(args: Array[String]): Unit = {

//    val m = new Monkey
//    m.breath()
//    m.run()
//    m.fly()
//    m.fight()

    //多态（1.父类引用指向子类对象（接口指向实现类）2.必须有方法的重写）
    //必须制定变量的类型
    val a: Animal = new Monkey

    a.breath()

  }


}
